package com.zy.convert.core;

import java.lang.annotation.Annotation;
import java.util.function.Function;

/**
 * @author hassan
 * @date 2020-02-24 17:07
 */
public abstract class AbstractConverter<A extends Annotation,S,V> {

    /**
     * 转换对象
     * @param context 上下文对象
     * @return 对每个元素执行操作
     */
    public abstract V convert(ConvertContext<A, S> context);

    /**
     * 转换集合
     * @param convertListContext 上下文对象
     * Function<ConvertContext<A>,Object> ===> <ConvertContext，返回结果值>
     * @return 对每个元素执行操作
     */
    public abstract Function<ConvertContext<A, S>,V> convertList(ConvertListContext<A, S> convertListContext);

}
